build: Make post-install script a Python script
authorChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 8 Jun 2018 10:04:30 +0000 (18:04 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 6 Dec 2018 09:07:33 +0000 (17:07 +0800)
The existing post-install shell script will most likely not work on
Visual Studio builds as there is normally no shell interpreter installed
on the system where the build is done, but the build is normally done in
a standard Windows cmd.exe console.

Instead, use a Python script so that it will work on the platforms that
Python supports.

build-aux/meson/post-install.py [new file with mode: 0644]
build-aux/meson/post-install.sh [deleted file]
meson.build

diff --git a/build-aux/meson/post-install.py b/build-aux/meson/post-install.py
new file mode 100644 (file)
index 0000000..f84b197
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python\r
+\r
+import os\r
+import sys\r
+import subprocess\r
+\r
+if 'DESTDIR' not in os.environ:\r
+    gtk_api_version = sys.argv[1]\r
+    gtk_abi_version = sys.argv[2]\r
+    gtk_libdir = sys.argv[3].replace('/', os.sep)\r
+    gtk_datadir = sys.argv[4].replace('/', os.sep)\r
+\r
+    gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)\r
+    gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')\r
+    gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')\r
+\r
+    print('Compiling GSettings schemas...')\r
+    subprocess.call(['glib-compile-schemas',\r
+                    os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])\r
+\r
+    print('Updating icon cache...')\r
+    subprocess.call(['gtk-update-icon-cache', '-q', '-t' ,'-f',\r
+                    os.path.join(gtk_datadir, 'icons', 'hicolor')])\r
+\r
+    print('Updating module cache for print backends...')\r
+    if not os.path.isdir(gtk_printmodule_dir):\r
+        os.mkdir(gtk_printmodule_dir)\r
+    subprocess.call(['gio-querymodules', gtk_printmodule_dir])\r
+\r
+    print('Updating module cache for input methods...')\r
+    if not os.path.isdir(gtk_immodule_dir):\r
+        os.mkdir(gtk_immodule_dir)\r
+    subprocess.call(['gio-querymodules', gtk_immodule_dir])\r
diff --git a/build-aux/meson/post-install.sh b/build-aux/meson/post-install.sh
deleted file mode 100755 (executable)
index 0d18b13..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-gtk_api_version=$1
-gtk_abi_version=$2
-gtk_libdir=$3
-gtk_datadir=$4
-
-# Package managers set this so we don't need to run
-if [ -z "$DESTDIR" ]; then
-  echo Compiling GSettings schemas...
-  glib-compile-schemas ${gtk_datadir}/glib-2.0/schemas
-
-  echo Updating desktop database...
-  update-desktop-database -q ${gtk_datadir}/applications
-
-  echo Updating icon cache...
-  gtk-update-icon-cache -q -t -f ${gtk_datadir}/icons/hicolor
-
-  echo Updating module cache for print backends...
-  mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
-  gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
-
-  echo Updating module cache for input methods...
-  mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/immodules
-  gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/immodules
-fi
index 53504f9279756399dd88087d1135d49859f079a5..923e13e63579276c8d95248c5787f4fe51a6efd2 100644 (file)
@@ -897,7 +897,7 @@ if get_option('documentation')
 endif
 
 # Keep this in sync with post-install.sh expected arguments
-meson.add_install_script('build-aux/meson/post-install.sh',
+meson.add_install_script('build-aux/meson/post-install.py',
                          gtk_api_version,
                          gtk_binary_version,
                          gtk_libdir,